import config from '../config'

export const procHandle = (p, routeNodes) => {
  return function*(next) {
    let params = {
      // 用户的参数
      ...p.params,
      // 填充服务器获取到的一些客户端信息,比如是否是移动端访问
      ...this.clientInfo,
      // 开发模式
      mode: config.env,
      // 渲染类型(server client)
      renderType: 'server',
    }

    yield this.render('tpl', {
      // 标题
      title: p.title||'',
      // 渲染html字符串
      markup: routeNodes(params, p.initState),
      // js名称
      templateName: p.templateName,
      // 初始状态传递到客户端渲染
      initState: JSON.stringify(p.initState||''),
      // 其他参数
      params: JSON.stringify(params),
    })
  }
}

export default procHandle
